package javaCode.chapter12.homework01;

import java.util.Scanner;

/**
 * @author 徐州城
 * @version 1.0
 */
public class Homework02 {
    static Scanner scanner = new Scanner(System.in);

    public static void main(String[] args) {

        /**
         * 输入用户名、密码、邮箱，如果信息录入正确，则提示注册成功，否则生成异常对象
         * 1. 用户名长度为2或3或4
         * 2. 密码长度为6，要求全部是数字
         * 3. 邮箱中包含@和. 并且@在. 前面 isDigtal
         */

        String name = "tom";
        String pwd = "123456";
        String email = null;

        try {
            userRegister(name, pwd, email);
            System.out.println("恭喜 注册成功！");
        } catch (Exception e) {
            System.out.println(e.getMessage());
        }
    }

    public static void userRegister(String name, String paw, String email) {

        //再加入一些校验
        if (!(name != null && paw != null && email != null)){
            throw new RuntimeException("参数不能为null");
        }

            if (!(name.length() >= 2 && name.length() <= 4)) {
                throw new RuntimeException("用户名长度为2或3或4");
            }

        if (!(paw.length() == 6) && isDigital(paw)) {
            throw new RuntimeException("密码长度为6，要求全部是数字");
        }
//        try {
//            int i = Integer.parseInt(paw);
//        } catch (NumberFormatException e) {
//            System.out.println("异常信息为：" + e.getMessage());
//            return;
//        }

        int i = email.indexOf("@");
        int j = email.indexOf(".");
        if (!(j > i && i > 0)) {
            throw new RuntimeException("邮箱中包含@和. 并且@在.前面 ");
        }
    }

    //单独写一个方法，判断 密码是否全部是数字字符 boolean
    public static boolean isDigital(String str) {
        char[] chars = str.toCharArray();
        for (int i = 0; i < chars.length; i++) {
            if (chars[i] < '0' || chars[i] > '9') {
                return false;
            }
        }
        return true;
    }
}
